home *** CD-ROM | disk | FTP | other *** search
/ NetNews Offline 2 / NetNews Offline Volume 2.iso / news / comp / lang / c-part1 / 9604 < prev    next >
Encoding:
Internet Message Format  |  1996-08-05  |  1.3 KB

  1. Path: keats.ugrad.cs.ubc.ca!not-for-mail
  2. From: c2a192@ugrad.cs.ubc.ca (Kazimir Kylheku)
  3. Newsgroups: comp.lang.c
  4. Subject: Re: ellipses and a front end to sprintf
  5. Date: 11 Mar 1996 13:34:08 -0800
  6. Organization: Computer Science, University of B.C., Vancouver, B.C., Canada
  7. Message-ID: <4i268gINNs4n@keats.ugrad.cs.ubc.ca>
  8. References: <4hvm2j$9dd@hobbes.cc.uga.edu>
  9. NNTP-Posting-Host: keats.ugrad.cs.ubc.ca
  10.  
  11. In article <4hvm2j$9dd@hobbes.cc.uga.edu>,
  12. Ben Greear <greear@pollux.cs.uga.edu> wrote:
  13. >
  14. >I would like to build a function Sprintf that would take as
  15. >arguments: Sprintf(String& a, String& b, ... );
  16.  
  17. This is not valid C syntax, unless some pre-processing transformation is
  18. implied.
  19.  
  20. >where String is a string class i am coding.
  21.  
  22. There is no such thing as ``class'' in C. Perhaps you mean ``module'' or
  23. ``data type''.
  24.  
  25. >My main question is how to get the "..." arguments to sprintf.
  26.  
  27. Using the ``stdarg.h'' facilities. These are described in the K&R2 textbook,
  28. which illustrates their use by demonstrating how to write a miniature printf()
  29. function.
  30.  
  31. >can I just call it as:  sprintf(a.str, b.str, ...);
  32.  
  33. No you can't. In fact there is no way to do this using sprintf(). You have to
  34. use vsprintf()---a version of sprintf that takes a variable-length argument
  35. list datatype instead of actual parameters.
  36.  
  37. -- 
  38.  
  39.